 #include "debug.h"
#include "bsp_led.h"
#include "msg.h"
#include "protocol.h"

#include "task_msg.h"
#include "task_50ms.h"
#include "task_meter.h"
#include "task_network.h"
#include "task_sys.h"

/***********************************************************************************************************
natapp --authtoken=dbcea379a92be3e0
***********************************************************************************************************/
static void AppTaskCreate (void);


/************************************************
函数名称 ： main
功    能 ： 主程序
参    数 ： 无
返 回 值 ： 无
作    者 ： FlySnail
*************************************************/
int main(void)
{
	//NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x5000);
	__enable_irq(); 
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	

	SYS_Init(); 

	AppTaskCreate();

	vTaskStartScheduler();

	while(1)
	{
	
	}
}


/************************************************
函数名称 ： AppTaskCreate
功    能 ： 创建任务，任务优先级数值越小，任务优先级越低
参    数 ： 无
返 回 值 ： 无
作    者 ： FlySnail
*************************************************/
static void AppTaskCreate (void)
{
	//	xTaskCreate( vTask_Msg, 	 			"vTask_Msg",   				600,  NULL,  4, &xHandleTaskMsg );   
		xTaskCreate( vTask_50ms, 	 			"vTask_50ms",   				100,  NULL,  3, &xHandleTask50ms );
}




/*
TickType_t sysTime = xTaskGetTickCount();   // 单位 ms

	static void AppTaskCreate( void *pvParameters )
{
	//xQueueHandle mavlinkQueue;
	//mavlink_message_t msg;
	//mavlinkQueue = xQueueCreate(20,sizeof(mavlink_message_t));
	//xQueueSendToBack(mavlinkQueue, &msg, MAVLINK_WAIT);
	//xQueueReceive( mavlinkQueue, &msg, portMAX_DELAY );
	//mavlink_send_with_dma(&msg);
	xTaskGetTickCount( void );
	
	//xSemaphoreHandle xMavlinkSendBinarySemaphore;
	//xSemaphoreHandle xMavlinkReceiveBinarySemaphore;

	//vSemaphoreCreateBinary(xMavlinkSendBinarySemaphore);
	//vSemaphoreCreateBinary(xMavlinkReceiveBinarySemaphore);
	
	//xSemaphoreGiveFromISR( xMavlinkSendBinarySemaphore, &xHigherPriorityTaskWoken );  //chufa 
	
	//xSemaphoreTake(xMavlinkReceiveBinarySemaphore, portMAX_DELAY );   // 
	//mavlink_message_t msg;
  while(1)
	{
		//xSemaphoreTake(xMavlinkSendBinarySemaphore, portMAX_DELAY );  //
	  
		
		//printf("%d\r\n",(int)uxQueueMessagesWaiting(mavlinkQueue));
		
		//mavlink_send_with_dma(&msg);
	}
	 vTaskDelete(NULL);
}
*/
